Note: Some code to modify notebook width.
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:80% !important; }</style>"))
display(HTML("<style>.output_result { max-width:80% !important; }</style>"))
display(HTML("<style>.prompt { display:none !important; }</style>"))
![]() |
|---|
| About Me |
"Cloud computing is an information technology (IT) paradigm that enables ubiquitous access to shared pools of configurable system resources and higher-level services that can be rapidly provisioned with minimal management effort, often over the Internet. Cloud computing relies on sharing of resources to achieve coherence and economies of scale, similar to a public utility." (https://en.wikipedia.org/wiki/Cloud_computing)
| Cloud Computing |
![]() |
|---|
| NIST Cloud Concetual Model |
![]() |
|---|
| Cloud Computing Layers |
Some additional concepts:
Mobile "backend" as a service (MBaaS): In the mobile "backend" as a service (m) model, also known as backend as a service (BaaS), web app and mobile app developers are provided with a way to link their applications to cloud storage and cloud computing services with application programming interfaces (APIs) exposed to their applications and custom software development kits (SDKs). Services include user management, push notifications, integration with social networking services and more. This is a relatively recent model in cloud computing,[74] with most BaaS startups dating from 2011 or later but trends indicate that these services are gaining significant mainstream traction with enterprise consumers.
Serverless computing: Serverless computing is a cloud computing code execution model in which the cloud provider fully manages starting and stopping virtual machines as necessary to serve requests, and requests are billed by an abstract measure of the resources required to satisfy the request, rather than per virtual machine, per hour. Despite the name, it does not actually involve running code without servers. Serverless computing is so named because the business or person that owns the system does not have to purchase, rent or provision servers or virtual machines for the back-end code to run on.
Function as a service (FaaS): Function as a service (FaaS) is a service-hosted remote procedure call that leverages serverless computing to enable the deployment of individual functions in the cloud that run in response to events. FaaS is included under the broader term serverless computing, but the terms may also be used interchangeably.

| Service | Abbr. |
|---|---|
| Analytics as a service | AnaaS |
| API as a service | AaaS |
| Artificial intelligence as a service | AIaaS |
| Backend as a service | BaaS |
| Banking as a service | |
| Blockchain as a service | |
| Business process as a service | BPaaS |
| Contact Information as a service | CIaaS |
| Content as a service | CaaS |
| Construction as a service | |
| Container as a service | |
| Crane as a service | |
| Communications Platform as a Service | CPaaS |
| Data as a service | DaaS |
| Desktop as a service | |
| Drone as a service | |
| Database as a service | DBaaS |
| Distribution as a service | DaaS |
| Exposure as a service | EaaS |
| Energy storage as a service | ESaaS |
| Electric vehicle as a service [2] | EVaaS |
| Function as a service | FaaS |
| Farming as a service | |
| Games as a Service | GaaS |
| Hadoop as a Service | HaaS |
| Hardware as a Service | |
| Housing as a Service | |
| Infrastructure as a Service | IaaS |
| Identity as a Service | IDaaS |
| IoT as a Service | IoTaaS |
| IT as a Service | ITaaS |
| Knowledge as a Service | KaaS |
| Logging as a Service | LaaS |
| Management as a Service | MaaS |
| Microgrid as a Service | |
| Mobility as a Service | |
| Monitoring as a Service | |
| Metal as a Service | |
| Mobile backend as a service | MBaaS |
| Machine Learning as a service | MLaaS |
| Network as a service | NaaS |
| Network Defense as a service | NDaaS |
| Payments as a service | PaaS |
| Platform as a service | |
| Push notification as a service | |
| RAN as a service | |
| Recovery as a service | RaaS |
| Recycling as a service | |
| Robot as a service | |
| Search as a service | SaaS |
| Security as a service | |
| Software as a service | |
| Storage as a service | |
| Transportation as a service | TaaS |
| Testing as a service | |
| Unified Communications as a Service | UCaaS |
| https://www.slideshare.net/SOA_Software/api-frenzy-api-strategy-101 |
| https://www.flexera.com/blog/cloud/2019/02/cloud-computing-trends-2019-state-of-the-cloud-survey/ |
![]() |
|---|
| Monoliths versus Microservices |
"A content delivery network or content distribution network (CDN) is a geographically distributed network of proxy servers and their data centers. The goal is to provide high availability and high performance by distributing the service spatially relative to end-users. CDNs serve a large portion of the Internet content today, including web objects (text, graphics and scripts), downloadable objects (media files, software, documents), applications (e-commerce, portals), live streaming media, on-demand streaming media, and social media sites." (https://en.wikipedia.org/wiki/Content_delivery_network)
![]() |
|---|
| Content Delivery Network |
![]() |
|---|
| Amazon Cloud Front |
We will use Amazon CloudFront. This provides several capabilities:
"The “API Economy” is much more than just a buzz phrase. It’s become a key enabler of digital transformation and agile businesses. In a recent report, McKinsey explains, “As the connective tissue linking ecosystems of technologies and organizations, APIs allow businesses to monetize data, forge profitable partnerships, and open new pathways for innovation and growth. ... ...
Businesses of all shapes and sizes are reaping benefit from APIs. According to a Harvard Business Review article, Salesforce has generated half of its revenue to through APIs, while Expedia.com has generated a whopping impressive 90% in recent years. APIs have become so essential to businesses that 85% consider web APIs and API-based integration fundamental to their business strategy and continued success." Forbes, 2019. (https://www.forbes.com/sites/falonfatemi/2019/04/30/3-keys-to-a-successful-api-strategy/)
![]() |
|---|
| (Old) Cloud Companies and APIs |
![]() |
|---|
| Programmable Web Growth |
![]() |
|---|
| API Management/Gateway |
![]() |
|---|
| AWS API Gateway |
"In computing, a virtual machine (VM) is an emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination." (https://en.wikipedia.org/wiki/Virtual_machine)
| https://nickjanetakis.com/blog/comparing-virtual-machines-vs-docker-containers |
| Some Consoles and Applications |
| HW, Virtual HW, Software |
| Virtual Machine Management |
| Docker Containers |
| Docker System |
| Pull and Start Debian using Docker |
| 1 physical computer, 2 VMs and a Docker Container |
Before
import boto3
ec2 = boto3.resource('ec2')
# create a new EC2 instance
instances = ec2.create_instances(
ImageId='ami-0323c3dd2da7fb37d',
MinCount=1,
MaxCount=1,
InstanceType='t2.micro'
)
After
Running
![]() |
|---|
| IaaS, PaaS, SaaS |
![]() |
|---|
| Beanstalk Concept |
zip -d archive.zip __MACOSX/\* to remove junk before upload.| Local Execution on localhost:8000 |
import json
import requests
res = requests.get("http://localhost:8000/api/health")
d = res.json()
d
| Cloud Execution: http://e6156f2020flask-env.eba-p7hph49b.us-east-1.elasticbeanstalk.com/ |
res = requests.get("http://e6156f2020flask-env.eba-p7hph49b.us-east-1.elasticbeanstalk.com/api/health")
d = res.json()
d
Note to Instructor: Demo the environment.
There are two relatively serious issues.
http://customerinfo2-env.yhm9mxm39c.us-east-1.elasticbeanstalk.com/e6156/my-cool-class.net![]() |
|---|
| UI with HTTPS and Domain |
![]() |
|---|
| Beanstalk Deployment |
| Web Application |
| Simple Main Program |
| Application Server and Application |
| Application and Static Content |
| Simple Example of Application Logic and Path |
| User Interface and Application |
| Model-View-Controller (MVC) and Model-View-ViewModel (MVVM) |
| Model and Microservice |
| Classical Application Structure |
| Microservice Architecture |
/service_info that just returns some text.